在使用 GCP 之前筆者都是使用 AWS 的 R53 及 Cloudflare 的 DNS Server,轉移至 GCP 之後,也一併將 DNS 統一至 GCP 代管,本文將帶您深入了解 Cloud DNS 的功能和優勢,以 GCP UI 介面操作,並分享使用它來提升域名解析效率和穩定性的技巧。
Cloud DNS 是 Google Cloud 提供的 DNS 代管服務,具備穩定、彈性與低延遲的特點,可滿足使用者註冊、管理及運作網域的一切所需。用戶可透過 Google Cloud Console、gcloud 指令或 API,新增、編輯與刪除 DNS 記錄。
選擇想要管理 DNS 伺服器的專案,進入到 Cloud DNS 頁面,點選建立可用區
填入已經買好的 Domain,點選建立。這裡我使用已經在 Godaddy 買好 demoit.shop 的網域
進入此網域的管理頁面,點開 NS 紀錄
接下來需要將 DNS 名稱伺服器轉移到 Google 管理,開啟購買此網域的註冊商網站,這裡我以Godaddy 示範,點選變更名稱伺服器
將 GCP Cloud DNS 中此網域顯示的 NS 紀錄全部填入,記得結尾不要加點,Godaddy 會無法通過,點擊儲存,等待生效,快的話半個小時就會生效,慢的話則需要等到 1 天
等待的過程中可以使用 dig ns 指令查詢
$ dig ns demoit.shop
Cloud DNS 生效
私人 DNS 區域可為私人 Google Cloud 網路提供易於管理的內部 DNS 解決方案,不必佈建及管理其他軟體與資源。另外,使用者僅能透過私人網路對私人區域發出 DNS 查詢,因此惡意人士無法存取您的內部網路資訊。
創建私有 DNS,選擇私人可用區類型,自定義私人的 DNS 網域,以及需要將此 DNS 廣播至哪些專案的VPC,點擊建立
如果 VPC 或是路由表可以解析到以下內部服務,例如下圖的 Redis Cluster
通常會將以下內部服務的 IP 寫成私有的 DNS 紀錄,如下
之後,後端服務如果要對 Redis Cluster 發起請求,只需要使用內部的 DNS 紀錄,如此一來,將來內部的服務 IP 只要有發生更動,只需要修改 DNS 紀錄,無需再重啟後端對應之服務,可以更方便更有效的進行管理。
如果我們使用 GCP 的 Cloud DNS 作為伺服器,那為了快速測試,可以將本機的 DNS 解析改成 8.8.8.8
和 8.8.4.4
,未來如果有添加新的 DNS 紀錄,需要在本地機器確認 DNS 是否生效時,會較為快速。
本章介紹 GCP Cloud DNS 的基本用法,至於為什麼筆者要把 DNS Server 轉移到 GCP 管理呢?是因為之後架設的其他服務,例如:cert-manager, external-dns 等這些服務都需要權限操作 DNS 紀錄,為了方便權限統一控管,可以使用 GCP IAM Workload Identity 進行權限綁定,無需再透過 Token 或是其他 Secret 物件管理,會較為快速及安全,下個章節將會介紹 GCP IAM Workload Identity。